|
The firefly algorithm (FA) is a metaheuristic algorithm, inspired by the flashing behaviour of fireflies. The primary purpose for a firefly's flash is to act as a signal system to attract other fireflies. Xin-She Yang formulated this firefly algorithm by assuming: #All fireflies are unisexual, so that any individual firefly will be attracted to all other fireflies; #Attractiveness is proportional to their brightness, and for any two fireflies, the less bright one will be attracted by (and thus move towards) the brighter one; however, the intensity (apparent brightness) decrease as their mutual distance increases; #If there are no fireflies brighter than a given firefly, it will move randomly. The brightness should be associated with the objective function. Firefly algorithm is a nature-inspired metaheuristic optimization algorithm. == Algorithm description == The pseudo code can be summarized as: Begin 1) Objective function: ; 2) Generate an initial population of fireflies ;. 3) Formulate light intensity so that it is associated with (for example, for maximization problems, or simply ; 4) Define absorption coefficient While (t < MaxGeneration) for i = 1 : n (all n fireflies) for j = 1 : n (n fireflies) if (), move firefly i towards j; Vary attractiveness with distance r via ; Evaluate new solutions and update light intensity; end if end for j end for i Rank fireflies and find the current best; end while Post-processing the results and visualization; end The main update formula for any pair of two fireflies and is :: where is a parameter controlling the step size, while is a vector drawn from a Gaussian or other distribution. It can be shown that the limiting case corresponds to the standard Particle Swarm Optimization (PSO). In fact, if the inner loop (for j) is removed and the brightness is replaced by the current global best , then FA essentially becomes the standard PSO. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Firefly algorithm」の詳細全文を読む スポンサード リンク
|